/* eslint-disable react/prop-types */
// eslint-disable-next-line no-use-before-define
import React, { Component, PureComponent } from 'react'

// class ComAA extends Component {
//   shouldComponentUpdate (nextProps, nextState) {
//     //     - 第一个参数：当前即将要使用的props
//     // - 第二个参数：当前即将要使用的state
//     console.log('新的数据来了', nextProps, nextState)
//     console.log('老的数据来了', this.props, this.state)
//     if (this.props.count === nextProps.count) {
//       console.log('count没有修改....')
//       return false
//     } else {
//       return true
//     }
//   }

//   render () {
//     console.log('子组件，更新')

//     return (
//       <div>子组件， {this.props.count}</div>
//     )
//   }
// }

class ComAA extends PureComponent {
  render () {
    console.log('子组件，更新')

    return (
      <div>子组件， {this.props.count}</div>
    )
  }
}

export default class ComA extends Component {
  state = {
    count: 1,
    age: 18
  }

  changeCount = () => {
    this.setState({ age: this.state.age + 1 })
    this.setState({ count: this.state.count + 1 })
  }

  render () {
    console.log('父组件更新')
    return (
    <>
    父组件
    <p>{this.state.age}, {this.state.count}</p>

    <button onClick={this.changeCount}>点击修改age</button>

    <ComAA count={this.state.count}/></>
    )
  }
}
